<?php

namespace maotool\core\console;

abstract class Command
{

    /**
     * @return string
     */
    abstract public function getName();

    /**
     * @return string
     */
    abstract public function getDescription();

    /**
     * @param array $argv 命令行参数
     * @return string
     */
    abstract public function getHelp($argv = []);

    /**
     * @param array $argv 命令行参数
     * @return mixed
     */
    abstract public function getUsage($argv = []);

    /**
     * 判断命令是否命中
     * @param array $argv 命令行参数
     * @return mixed
     */
    abstract public function isHit($argv = []);

    /**
     * 处理命令内容
     * @param array $argv 命令行参数
     * @return mixed
     */
    abstract public function handle($argv = []);

}
